#ifndef __BLUETOOTH_H
#define __BLUETOOTH_H

#include <string.h>

#include "GPIO.h"
#include "UART.h"
#include "Switch.h"
#include "NVIC.h"

#include "Config_handler.h"

// 蓝牙端口
#define BT_STATE_PIN P52
#define BT_EN_PIN    P04

// 蓝牙响应状态最大字节
#define BT_ST_MAX_BYTE  3
// 蓝牙响应数据所占最多字节
#define BT_MAX_BYTE     30
// 尝试连接指定蓝牙次数
#define BT_TRY_TIMES    5

// 蓝牙指令
#define BT_T_TEST      "AT"        // 测试指令
#define BT_T_SCAN      "AT+INQ"    // 扫描从机蓝牙
#define BT_T_CONA      "AT+CONA"   // 连接从机蓝牙
                       
// 蓝牙响应信息        
#define BT_R_OK        "+OK"       // 指令执行成功
#define BT_CONA_OK     "OK"        // 连接指令成功


// 蓝牙模块初始化
void bluetooth_init();


// 测试蓝牙 - 发送AT
void bt_test();


// 扫描从机蓝牙 - 发送AT+INQ
void bt_scan();


// 指定从机地址连接蓝牙 - 发送AT+CONA
void bt_connect(char *name);


// 断开指定从机蓝牙
void bt_disconnect();


// 监听串口并处理收到的蓝牙响应信息
char listen_bt();


// 测试
void uart4_2_uart1();


// 测试
void uart1_2_uart4();


// 测试
void uart2_2_uart1();


// 测试
void uart1_2_uart2();


#endif

